#include "UI\Controls\Control.h"
#include "UI\Widgets\WidgetFactory.h"
#include "UI\Widgets\Widget.h"


///////////////////////////////////////////////////////////
//        ///  //////  /        ///  ///////  ///        //
//  //////  /  //////  /  //////  /  ///////  /  //////////
//        ///  //////  /        ///  ///////  /  //////////
//  /////////  //////  /  //////  /  ///////  /  //////////
//  ///////////      ///        ///        /  ///        //
///////////////////////////////////////////////////////////

bool ShRp::UI::Widget::Init( int2 _Pos, int2 _Size )
{
	this->Move(_Pos);
	this->Resize(_Size);

	m_Parent->AddChild(this);

	return true;
}

void ShRp::UI::Widget::MouseMove()
{
	const int2 pos1 = m_Parent->GetPos() + m_Pos;
	const int2 pos2 = pos1 + m_Size;
	if(Mouse::Pos.x > pos1.x && Mouse::Pos.x < pos2.x && Mouse::Pos.y > pos1.y && Mouse::Pos.y < pos2.y)
	{
		m_MouseOver = true;
	}
}

////////////////////////////////////////////////////////////////
//      ///      ///  /  //////  ///    ///          /        //
//  ////  /  ////  /  /  //////  /  ////  /////  /////  ////////
//      ///      ///  ///  //  ///        /////  /////      ////
//  ///////  //  ///  ///  //  ///  ////  /////  /////  ////////
//  ///////  ////  /  /////  /////  ////  /////  /////        //
////////////////////////////////////////////////////////////////

ShRp::UI::Widget::Widget( Type::E _Type, Control* _Parent )
	: m_Type(_Type)
	, m_Parent(_Parent)
	, m_MouseOver(false)
{

}

void ShRp::UI::Widget::Move( int2 _NewPos )
{
	m_Pos = _NewPos;
}

void ShRp::UI::Widget::Resize( int2 _NewSize )
{
	m_Size = _NewSize;
}